数字String类型 转换精度问题 |
您所在的位置:网站首页 › java double乘以int › 数字String类型 转换精度问题 |
![]() 问题:一个double数字的字符串,我乘以100后,使用String.valueOf会丢失精度。 解决:百度后,像这种double类型精度问题,使用BigDecimal对象处理是最理想的。 String s = "2.112"; BigDecimal temp = BigDecimal.valueOf(Double.valueOf(s)); // 将temp乘以100 temp = temp.multiply(BigDecimal.valueOf(100)); double sum = temp.doubleValue(); System.out.println(sum); 参考链接:https://blog.csdn.net/sinat_35717984/article/details/81144981注意:BigDecimal temp = BigDecimal.valueOf(Double.valueOf(s)); 该句中BigDecimal对象的获取,传入的参数为String时,可以new一个对象返回。(BigDecimal temp = new BigDecimal(s)) 但是如果传入的参数是double时,只能使用BigDecimal.valueOf(double),因为double类型转换时有着不可预知性,也会导致精度丢失。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |